package com.itheima.a01threadcase1;

/**
 * 多线程
 * 进程：一个软件运行了过后就是一个进程
 * 线程就是包含在进程之中的 他是进程的实际运行单位
 * 线程其实就是应用软件中能独立执行的那些功能 -- QQ的聊天 ， 下载文件 ...都是线程 QQ 这个大的叫进程
 *
 * 这俩存在的目的就是为了并发执行
 *
 * 并发就是同一时刻有多个指令在单个CPU上交替运行
 * 并行就是在同一时刻有多个指令在多个CPU上同时执行
 *      CPU：8核4线程   就是有两个CPU , 能同时并行 4 条线程
 *
 *
 * 多线程的实现方式
 *      -- 继承Thread
 *      -- 实现Runnable接口
 *      -- 利用Callable接口和Future接口方式实现
 */
public class MyThread extends Thread {

    /**
     * 这是传统的单线程程序
     * 因为创建变量是需要时间的
     * 而创建变量和计算结果是两个操作
     * 他这里由于只有一个线程
     * CPU只有先创建玩变量再一步步的去赋值计算    -->CPU利用率低
     *
     * 而所谓的多线程 特点就是能同时做多件事情 CPU能在等待这个事情的时候去做其他事情    -->提高CPU效率
     * 比如打游戏的时候在下载时还可以去播放音乐之类的  --即成需可以同时做多件事情
     *
     */
    public void demo1() {
        int a = 10 ;
        int b = 20 ;
        int c = a + b ;
        System.out.println(c);

    }

    /**
     * 重写 run 方法放入逻辑
     */
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(this.getName() + "Hello World...");
        }
    }

}
